package com.uzai.console.service.ks;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.uzai.console.dto.ks.ksorder.*;
import com.uzai.console.vo.ks.ksorder.KsOrderInfoVo;
import com.uzai.console.vo.ks.ksorder.KsOrderReportVo;

/***
 * @author liuqi
 * @date 2021年08月13日 11:33
 */
public interface KsOrderService {

    /***
     * 查询快手订单列表
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param ksOrderQuery
     * @return null
     */
    Page<KsOrderInfoVo> findKsOrderList(KsOrderQuery ksOrderQuery);

    /***
     * 查询快手订单详情
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param ksOrderIdDto
     * @return null
     */
    KsOrderInfoVo findKsOrderInfo(KsOrderIdDto ksOrderIdDto);

    /***
     * 查询快手订单统计信息
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param ksOrderQuery
     * @return null
     */
    KsOrderReportVo findKsOrderReport(KsOrderQuery ksOrderQuery);

    /***
     * 快手订单删除-假删除（修改是否删除状态）
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param ksOrderDelDto
     * @return null
     */
    Boolean delKsOrder(KsOrderDelDto ksOrderDelDto);

    /***
     * 订单确认收货
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param ksOrderIdDto
     * @return null
     */
    Boolean confirmReceive(KsOrderIdDto ksOrderIdDto);

    /***
     * 订单手动维权
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param ksOrderIdDto
     * @return null
     */
    Boolean confirmRefund(KsOrderIdDto ksOrderIdDto);

    /***
     * 订单冻结
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param ksOrderIdDto
     * @return null
     */
    Boolean confirmFrozen(KsOrderIdDto ksOrderIdDto);

    /***
     * 订单解冻
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param ksOrderIdDto
     * @return null
     */
    Boolean confirmThaw(KsOrderIdDto ksOrderIdDto);

    /***
     * 订单解绑用户
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param ksOrderUnbindUserDto
     * @return null
     */
    Boolean unbindUser(KsOrderUnbindUserDto ksOrderUnbindUserDto);

    /***
     * 订单绑定用户
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param ksOrderBindUserDto
     * @return null
     */
    Boolean bindUser(KsOrderBindUserDto ksOrderBindUserDto);

    /**
     * 修改解冻时间
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param ksOrderThawTimeDto
     * @return null
     */
    Boolean updateThawTime(KsOrderThawTimeDto ksOrderThawTimeDto);

    /***
     * 手动下载快手订单
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param ksOrderDownLoadDto
     * @return null
     */
    void downloadOrder(KsOrderDownLoadDto ksOrderDownLoadDto);

    /***
     * 刷新快手订单
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param ksOrderIdDto
     * @return null
     */
    void refreshOrder(KsOrderIdDto ksOrderIdDto);

    /**
     * 查询所有未绑定用户订单列表
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param ksOrderUnbindDtoQuery
     * @return null
     */
    Page<KsOrderInfoVo> findUnbindUserList(KsOrderUnbindDtoQuery ksOrderUnbindDtoQuery);

    /**
     * 查询所有未绑定用户订单统计信息
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param ksOrderUnbindDtoQuery
     * @return null
     */
    KsOrderReportVo findUnbindUserReport(KsOrderUnbindDtoQuery ksOrderUnbindDtoQuery);

    /**
     * 删除所有未绑定用户订单列表
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param ksOrderDeleteUnbindDto
     * @return null
     */
    Boolean deleteUnbindUserList(KsOrderDeleteUnbindDto ksOrderDeleteUnbindDto);

    /**
     * 更新7天前未收货订单
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param merId
     * @return null
     */
    void updateKsOrderUnReceivedList(Long merId);


    /**
     * 追回返利
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param ksOrderIdDto
     * @return null
     */
    Boolean rebateRefound(KsOrderIdDto ksOrderIdDto);

}
